/*
 * Copyright 2018-2019 KunMinX
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain menu_text_color copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.gzwanchuang.xhgj.bridge.data.repository;
import androidx.lifecycle.MutableLiveData;

import com.gzwanchuang.xhgj.proto.Area;
import com.gzwanchuang.xhgj.proto.Bank;
import com.gzwanchuang.xhgj.proto.Index;
import com.gzwanchuang.xhgj.proto.Information;
import com.gzwanchuang.xhgj.proto.LoginOuterClass;
import com.gzwanchuang.xhgj.proto.MemberOuterClass;
import com.gzwanchuang.xhgj.proto.Merchantservice;
import com.gzwanchuang.xhgj.proto.Statistics;

import java.util.List;

/**
 * Create by KunMinX at 19/10/29
 */
 interface


IRemoteRequest {
    // 登录方法
    void login(MutableLiveData<LoginOuterClass.Login> liveData, MutableLiveData<String> errorString, String userName, String password);


    // 忘记密码
    void forgetPassword(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String phone, String password, String code);


    // 获取验证码   1 为注册, 3为找回登录密码, 5银行卡手机验证
    void getCode(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String phone, String type);


    // 注册
    void register(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String phone, String password, String code,String sncode);


    // 上传图片
    void upLoadImage(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String path);


    // 第一步 实名认证
    void intent(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String uploadPath, String uploadPathTwo, String uploadPaththree, String name, String qrcode);


    // 第二步人脸识别
    void face_check(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String idCardFront);


    // 第三步 获取MCC
    void getmcc(MutableLiveData<List<Merchantservice.mcc>> mccArray, MutableLiveData<String> errorString, String searchName);


    // 第三部 获取地区列表
    void area_list(MutableLiveData<List<Area.area>> areas, MutableLiveData<String> errorString, String area_id);


    // 第三部 MCC认证
    void modify_mcc(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String name, String mccCode,
                    String provinceCode, String cityCode, String areaCode, String mccDetailAdree);


    // 第四部 银行卡认证
    void audit(MutableLiveData<String> resultString, MutableLiveData<String> errorString,
               String uploadPath, String uploadPathTwo, String uploadPathThree, String name,
               String bankCardCode, String phone,
               String code);


    // 获取支持银行列表
    void get_support(MutableLiveData<List<Bank.bank>> banks, MutableLiveData<String> errorString, String type, String form);


    // 第五步 信用卡认证 发送验证码
    void credit_send(MutableLiveData<Merchantservice.credit_card> credit_card, MutableLiveData<String> errorString, String name, String card,
                     String valid_time, String cvv, String mobile);


    // 第五步 信用卡认证
    void creditCard(MutableLiveData<String> resultString, MutableLiveData<String> errorString,
                    String name, String card, String valid_time, String cvv, String mobile, String orderId, String captcha);


    // 第六步 绑定机器
    void bind(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String snCode);


    // 获取个人信息
    void get_member_info(MutableLiveData<MemberOuterClass.Member> member, MutableLiveData<String> errorString);


    // 发送验证码
    void send_code(MutableLiveData<String> codeString, MutableLiveData<String> errorString,
                   String mPhone, String bankCardCode);


    // 首页Banner的数据
    void getBanner(MutableLiveData<Index.get_show_list> showList, MutableLiveData<String> errorString);


    // 获取首页交易数据
    void get_trading_list(MutableLiveData<List<Statistics.trading>> showList, MutableLiveData<String> errorString, int page,
                          String typeNumber, String statusNumber,String month, String dayFirst, String dayEnd);


    // 获取结算卡（只有一张)）
    void get_bank(MutableLiveData<Bank.bank> bank, MutableLiveData<String> errorString, String type, String form);


    // 获取信用卡
    void get_bank_list(MutableLiveData<List<Bank.bank>> bankList, MutableLiveData<String> errorString, String type, String form);


    // 获取账单列表
    void get_trading_detail(MutableLiveData<Statistics.trading> tradingDetail, MutableLiveData<String>
            errorString, String id, String time);


    // 解绑信用卡
    void unbind_card(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String id);


    // 获取绑定机具列表
    void get_sn(MutableLiveData<Merchantservice.bind> bind, MutableLiveData<String> errorString);


    // 首页关于XXX列表
    void informationIndex(MutableLiveData<List<Information.DetailInfo>> detailInfos, MutableLiveData<String> errorString);


    // 统计线性图表
    void get_trend(MutableLiveData<Statistics.get_statistics> statists, MutableLiveData<String> errorString, String time);


    // 统计刷卡数据与底部百分比
    void get_statistics(MutableLiveData<Statistics.get_statistics> statists, MutableLiveData<String> errorString, String time);


    // 消息列表
    void system_log(MutableLiveData<List<MemberOuterClass.SysteLog.SystemLogList>> system_logs, MutableLiveData<String> errorString, int page);


    // 意见反馈
    void feedback_add(MutableLiveData<String> resultString, MutableLiveData<String> errorString, String feedback);


    // 获取客服信息
    void get_kfu_info(MutableLiveData<Index.get_kfu_info> kfuBean, MutableLiveData<String> errorString);


    // 创建订单 （用于刷卡页面）
    void created_order(MutableLiveData<MemberOuterClass.created_order> order, MutableLiveData<String> errorString);

}
    



